package com.tedu.ds.order.pojo.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

@Data
@ApiModel(description = "订单信息")
public class Order {

    @ApiModelProperty(value = "订单id", example = "1")
    private Long id;

    @ApiModelProperty(value = "客户id", example = "1", required = true)
    private Long custId;

    @ApiModelProperty(value = "员工id", example = "1")
    private Long empId;

    @ApiModelProperty(value = "订单状态", example = "待支付")
    private String status;

    @ApiModelProperty(value = "显示状态", example = "用户删除")
    private String showStatus;

    @ApiModelProperty(value = "订单的总金额", example = "1000.0")
    private BigDecimal totalPrice;

    @ApiModelProperty(value = "支付状态", example = "未支付")
    private String payStatus;

    @ApiModelProperty(value = "订单创建的时间", example = "2024-10-18 10:20:16")
    private Date createTime;

    @ApiModelProperty(value = "订单开始时间", example = "2024-10-18 11:00:00")
    private Date startTime;

    @ApiModelProperty(value = "订单结束时间", example = "2024-10-18 12:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    @ApiModelProperty(value = "订单最后更新的时间", example = "2024-10-19 10:20:16")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    @ApiModelProperty(value = "备注信息", example = "这是一个测试订单")
    private String remark;

    @ApiModelProperty(value = "订单次序", example = "A1")
    private String sort;

    @ApiModelProperty(value = "优惠券id", example = "1")
    private Integer couponId;

    @ApiModelProperty(value = "优惠券效果", example = "10% off")
    private String couponEffect;

    @ApiModelProperty(value = "退款的金额", example = "0.0")
    private BigDecimal refundAmount;

    @ApiModelProperty(value = "客户地址", example = "北京市朝阳区")
    private String custAddress;

    @ApiModelProperty(value = "服务id", example = "1")
    private Integer serviceId;
}